Skip to content

FISH-14066 Jakarta Agentic AI: use released API 1.0.0-M1 and EE11 TCK branch - #8331

Merged
Pandrex247 merged 56 commits into
mainfrom
main-with-Jakarta-Agentic-AI
Aug 10, 2026
Merged

FISH-14066 Jakarta Agentic AI: use released API 1.0.0-M1 and EE11 TCK branch#8331
Pandrex247 merged 56 commits into
mainfrom
main-with-Jakarta-Agentic-AI

Conversation

@luiseufrasio

Copy link
Copy Markdown
Contributor

Description

This PR brings the Jakarta Agentic AI integration branch up to date and switches the API dependency to a released version:

  • Merge latest payara/main into the branch.
  • Use the released Jakarta Agentic AI API 1.0.0-M1 (available on Maven Central) instead of the 1.0.0-SNAPSHOT version.
  • Point the Jakarta Agentic AI TCK stage in the Jenkinsfile at the EE11 branch of the jakartaee-10-tck-runners repository.

Dependency

This PR depends on payara/jakartaee-10-tck-runners#213 and should be merged together with it.

Testing performed

CI / Jenkins pipeline (including the Jakarta Agentic AI TCK stage).

luiseufrasio and others added 30 commits June 10, 2026 10:05
…jakarta-agentic-ai-1-0-tck-support-in-payara-server
…croProfile Config

Evolve the internal LlmBackend SPI to carry role-tagged conversation turns and an optional system prompt, and store assistant replies in LargeLanguageModelImpl so per-workflow conversational state is complete and providers receive a correctly alternating history.

Add Ollama and Anthropic backends (raw java.net.http + JSON-B, no SDK) and an LlmBackendFactory that selects the provider from MicroProfile Config under payara.agentic.llm.*. The Anthropic backend marks the system prompt with cache_control for prompt caching across workflow phases. The no-op backend remains the default when no provider is configured.

Wire the factory into AgenticAIExtension and add the microprofile-config-api dependency.
…generator

quickstart: a minimal @agent that answers a question, exercising the @Trigger/@Decision/@Action/@outcome phases. Selects a small local Ollama model via MicroProfile Config and ships a CI-safe Arquillian IT that uses a stub LargeLanguageModel, so it runs without a live model.

tutorial generator: an agent that writes a field-by-field guide for a Customer registration form (contract Azul Payara Server) and refines it through a chat loop, passing the current HTML plus the instruction each turn. Uses the Anthropic provider, ships a side-by-side form/guide UI, and a CI-safe IT with a stub model.

Register both modules in the payara-samples reactor.
… configurable LLM backends) into the samples branch
… sample

- Add VertexLlmBackend: authenticates via ADC (gcloud subprocess) or
  GOOGLE_ACCESS_TOKEN env var; builds the rawPredict endpoint URL handling
  the 'global' pseudo-region; sends anthropic_version in the request body
  as required by Vertex AI
- Register 'vertex' provider in LlmBackendFactory; project-id and region
  fall back to the ANTHROPIC_VERTEX_PROJECT_ID / CLOUD_ML_REGION env vars
- Switch sample config to vertex provider with claude-sonnet-4-6 model
- Update system prompt to suppress the form-level title/intro in generated HTML
- Redesign index.html with Azul brand tokens: navy header, white cards,
  Inter font, pill buttons (#0055cc), and chat bubbles styled after the brand

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… chat

- Redesign UI: form centred on the left; clicking a field slides in a
  contextual panel on the right showing only that field's AI explanation
- Add POST /api/tutorial/refine-field endpoint: isolates one field's
  description, refines it via the agent, and merges the result back into
  the full guide JSON (other fields preserved)
- Switch agent prompts and system prompt to return structured JSON
  (fieldName → plain-text explanation) instead of a free-form HTML fragment
- Per-field chat history: each field keeps its own conversation thread,
  restored when the user switches between fields
- Toast notification after generation guides the user to click a field
- Guide panel styled to match the form card (white, clean border); removed
  metallic gradient
- Graceful handling of non-JSON agent responses in the chat

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…erge

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…nt-samples-with-jakarta-agentic-ai-on-payara-server
…ON_JSON

The test requests TEXT_HTML and the store holds HTML; the wrong @produces
annotation caused HTTP 406 on every CI run.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…lAgent

The stub checked for "Apply this change requested" but TutorialAgent sends
"Apply this change to the explanations", so refine always returned GENERATED.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Rename local variable `html` to `content` in TutorialAgent.render() to
  avoid confusion with JSON output
- Add Logger to TutorialResource and log caught exceptions in extractField
  and mergeField instead of silently discarding them
- Add Javadoc to TutorialStore explaining why @ApplicationScoped + volatile
  is intentional (guide must persist across generate/refine requests)
- Add refinesField IT test covering the /api/tutorial/refine-field endpoint

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…to FISH-13709-create-agent-samples-with-jakarta-agentic-ai-on-payara-server
…/ai/agent/engine/ClassMethodOrder.java

Co-authored-by: Alfonso Valdez <alfonso.altamirano@payara.fish>
…/ai/agent/engine/ClassMethodOrder.java

Co-authored-by: Alfonso Valdez <alfonso.altamirano@payara.fish>
…/ai/agent/engine/WorkflowEngine.java

Co-authored-by: Alfonso Valdez <alfonso.altamirano@payara.fish>
…/ai/agent/engine/WorkflowEngine.java

Co-authored-by: Alfonso Valdez <alfonso.altamirano@payara.fish>
…/ai/agent/engine/WorkflowEngine.java

Co-authored-by: Alfonso Valdez <alfonso.altamirano@payara.fish>
…/ai/agent/extension/AgenticAIExtension.java

Co-authored-by: Alfonso Valdez <alfonso.altamirano@payara.fish>
…-jakarta-agentic-ai-1-0-tck-support-in-payara-server
luiseufrasio and others added 13 commits July 13, 2026 10:57
…-jakarta-agentic-ai-1-0-tck-support-in-payara-server
…ta-agentic-ai-1-0-tck-support-in-payara-server

FISH-13708 implement jakarta agentic ai 1 0 tck support in payara server
…to FISH-13709-create-agent-samples-with-jakarta-agentic-ai-on-payara-server
…mples-with-jakarta-agentic-ai-on-payara-server

FISH-13709 Add Jakarta Agentic AI samples (quickstart and tutorial generator)
…ic-ai modules

The agentic-ai modules exist only on the Agentic AI branch, so the version
bump merged from main (7.2026.7 -> 7.2026.8) did not touch them and they did
not appear as merge conflicts. This left the agentic-ai packager building as
7.2026.7, so payara-web-featureset (7.2026.8) could not resolve the
agentic-ai:zip:7.2026.8 dependency and the build failed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Update the jakarta.agentic-ai-api dependency from 1.0.0-SNAPSHOT to the
released 1.0.0-M1 version available on Maven Central.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Point the Jakarta Agentic AI TCK stage at the EE11 branch of the
jakartaee-10-tck-runners repository.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ai-1-0-spec

FISH-13708: Fix stale parent versions (7.2026.7 -> 7.2026.8) in agentic-ai modules
Comment thread Jenkinsfile Outdated
Comment thread appserver/agentic-ai/agentic-ai-core/pom.xml Outdated
Comment thread appserver/agentic-ai/agentic-ai-core/pom.xml Outdated
</goals>
<configuration>
<instructions>
<Export-Package/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the reasoning behind not using the default config?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This module is an internal implementation module (fish.payara.server.internal.agentic-ai), so it shouldn't export any packages for OSGi consumption. The empty <Export-Package/> keeps every package private instead of letting bnd fall back to exporting the module's packages. It mirrors the Jakarta Data implementation module (appserver/data/data-core), which uses the identical config for the same reason. I've added a comment to the pom explaining this.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost all of our modules are internal only and export their OSGi contents though. I'm not convinced that your argument is correct without some more details

Comment on lines +70 to +92
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>osgi-bundle</id>
<phase>package</phase>
<goals>
<goal>bundle</goal>
</goals>
<configuration>
<instructions>
<Embed-Dependency>*;scope=compile;inline=true</Embed-Dependency>
<Export-Package>*</Export-Package>
<Import-Package>*</Import-Package>
<Private-Package>!*</Private-Package>
<HK2-Bundle-Name>${project.groupId}:${project.artifactId}</HK2-Bundle-Name>
</instructions>
<unpackBundle>true</unpackBundle>
</configuration>
</execution>
</executions>
</plugin>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably raise an issue to OSGi-ify the API so that we don't have to rely on this

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Pandrex247 should I create an internal JIRA ticket for us? Or you mean create an issue in the Jakarta Agentic AI API project (https://github.com/jakartaee/agentic-ai)?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Raised an issue on their tracker to publish the API as an OSGi bundle: jakartaee/agentic-ai#55 - once that's done we can drop this wrapper module.

luiseufrasio and others added 4 commits August 5, 2026 17:12
Replace the bespoke inline git-clone + mvn stage with delegation to the
reusable TCKs/JakartaEE-11-TCK job, matching how the other TCK stages
run. The agentic-ai suite support was added to that shared pipeline
(payara/EngineeringJenkinsjobs#495).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…rsion

Replace the hardcoded 1.0.0-M1 version of jakarta.agentic-ai-api with the
${jakarta.agentic-ai-api.version} property (defined in the root
payara-aggregator pom) in agentic-ai-core and the two agentic-ai samples,
so the version is managed in a single place.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@luiseufrasio
luiseufrasio requested a review from Pandrex247 August 6, 2026 13:12

@Pandrex247 Pandrex247 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we're adding it to payara-web, I feel like we should also be adding it to Embedded and Micro?

Also I don't feel like we should be running the TCK against every single PR - this is quite a niche thing.

Comment thread Jenkinsfile
Comment on lines -228 to +322
stage('MicroProfile OpenAPI TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenAPI TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenAPI'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenAPI TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenTelemetry JVM Metrics TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenTelemetry JVM Metrics TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenTelemetry-JVM-Metrics-Runtime'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenTelemetry JVM Metrics TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenTelemetry JVM Metrics Application TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenTelemetry JVM Metrics Application TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenTelemetry-JVM-Metrics-Application'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenTelemetry JVM Metrics Application TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenTelemetry Tracing Logging TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenTelemetry Tracing Logging TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenTelemetry-Tracing-Logging'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenTelemetry Tracing Logging TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile REST Client TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP REST Client TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'Rest-Client'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP REST Client TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenAPI TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenAPI TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenAPI'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenAPI TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenTelemetry JVM Metrics TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenTelemetry JVM Metrics TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenTelemetry-JVM-Metrics-Runtime'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenTelemetry JVM Metrics TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenTelemetry JVM Metrics Application TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenTelemetry JVM Metrics Application TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenTelemetry-JVM-Metrics-Application'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenTelemetry JVM Metrics Application TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenTelemetry Tracing Logging TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenTelemetry Tracing Logging TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenTelemetry-Tracing-Logging'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenTelemetry Tracing Logging TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile REST Client TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP REST Client TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'Rest-Client'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP REST Client TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is going on here? Why are so many lines being changed?

Comment thread Jenkinsfile
Comment on lines +323 to +342
stage('Jakarta Agentic AI TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running Jakarta Agentic AI TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/JakartaEE-11-TCK',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'payaraDistribution', value: 'Full'),
string(name: 'tck_profile', value: 'Full'),
string(name: 'jdk_version', value: 'zulu-21'),
string(name: 'tck_suites', value: 'agentic-ai'),
string(name: 'specificRunnerBranchCommitOrTag', value: 'EE11'),
string(name: 'runnerRepoOrg', value: 'payara')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran Jakarta Agentic AI TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This raises a question: should we be running the TCK against every single PR?
I don't feel like we should be tbh - this feels much more like a weekly TCK run thing

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +72 to +88
<!-- Temporary dependencies while EE11 in development, remove once EE11 fully released -->
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.enterprise</groupId>
<artifactId>jakarta.enterprise.cdi-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.inject</groupId>
<artifactId>jakarta.inject-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- End of temporary dependencies -->

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EE 11 is released? Surely all of these are included in the jakarta.jakartaee-api dependency

Comment on lines +72 to +88
<!-- Temporary dependencies while EE11 in development, remove once EE11 fully released -->
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.enterprise</groupId>
<artifactId>jakarta.enterprise.cdi-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.inject</groupId>
<artifactId>jakarta.inject-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- End of temporary dependencies -->

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See other comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing copyright

Comment on lines +4 to +5
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
version="4.0" bean-discovery-mode="all">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EE11 is CDI 4.1 - this is an EE10 beans.xml

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing copyright

Comment on lines +4 to +5
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
version="4.0" bean-discovery-mode="all">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an EE 10 beans.xml - should be 4.1

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing copyright

</goals>
<configuration>
<instructions>
<Export-Package/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost all of our modules are internal only and export their OSGi contents though. I'm not convinced that your argument is correct without some more details

@Pandrex247 Pandrex247 changed the title Jakarta Agentic AI: use released API 1.0.0-M1 and EE11 TCK branch FISH-14066 Jakarta Agentic AI: use released API 1.0.0-M1 and EE11 TCK branch Aug 10, 2026
@Pandrex247

Copy link
Copy Markdown
Member

Issues will be created to iterate on my review comments

@Pandrex247
Pandrex247 merged commit ae64df0 into main Aug 10, 2026
1 check was pending
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants